home *** CD-ROM | disk | FTP | other *** search
/ Aminet 45 / Aminet 45 (2001)(GTI - Schatztruhe)[!][Oct 2001].iso / Aminet / dev / c / vbcc.lha / vbcc / targets / ppc-warpos / include / stdarg.h < prev    next >
C/C++ Source or Header  |  2001-04-28  |  933b  |  35 lines

  1. #pragma begin_header
  2. /*
  3. ** stdarg.h for vbcc-PowerOpen/WarpOS
  4. ** V1.1 26-Feb-01 vb
  5. **      completely rewritten + va_copy added
  6. ** V1.0 21-Apr-98 phx
  7. **      vbcc PPC CG V0.2n provides a completely different vararg-solution:
  8. **      The slots for fixed args remain reserved in the stack frame.
  9. **      The address of lastarg+1 is guaranteed to point to the first vararg.
  10. ** V0.1 19-Apr-98 phx
  11. **      created
  12. */
  13.  
  14. #ifndef __STDARG_H
  15. #define __STDARG_H 1
  16.  
  17. typedef unsigned char *va_list;
  18.  
  19. #define __va_align(type) (4)
  20.  
  21. #define __va_do_align(vl,type) ((vl)=(char *)((((unsigned int)(vl))+__va_align(type)-1)/__va_align(type)*__va_align(type)))
  22.  
  23. #define __va_mem(vl,type) (__va_do_align((vl),type),(vl)+=sizeof(type),((type*)(vl))[-1])
  24.  
  25. #define va_start(ap, lastarg) ((ap)=(va_list)(&lastarg+1))
  26.  
  27. #define va_arg(vl,type) __va_mem(vl,type)
  28.  
  29. #define va_end(vl) ((vl)=0)
  30.  
  31. #define va_copy(new,old) ((new)=(old))
  32.  
  33. #endif
  34. #pragma end_header
  35.